const path = require("path");

function resolve(dir) {
  return path.join(__dirname, dir);
}

const assetsCDN = {
  // webpack build externals
  externals: {
    AMap: "AMap"
  }
};
const isProd = process.env.NODE_ENV === "production";
const port = 8080;
module.exports = {
  // publicPath: './',
  publicPath: isProd ? "/gbzj/app/" : "./",
  outputDir: "dist",
  assetsDir: "static",
  lintOnSave: false,
  // lintOnSave: process.env.NODE_ENV === "development",
  productionSourceMap: false,
  devServer: {
    port,
    open: false,
    https: true,
    overlay: {
      warnings: false,
      errors: true
    },
    disableHostCheck: true,
    proxy: {
      // 配置接口代理
      "/itour": {
        // '/api': {
        // target: "http://10.73.185.205:8080/", // 测试
        target: "http://36.138.133.226:8889", // 发布
        // target: 'http://20.21.1.173:3002', // 发布
        //  target: 'http://aladdin.zj.chinamobile.com/swldsj/api', // 测试
        // target: process.env.VUE_APP_BASE_URL,
        changeOrigin: true,
        pathRewrite: {
          // '/api': '',
          "^/itour": ""
        }
      }
    }
  },
  configureWebpack: {
    externals: isProd ? assetsCDN.externals : {},
    name: "干部之家-H5",
    resolve: {
      alias: {
        "@": resolve("src")
      }
    }
  },
  // chainWebpack(config) {
  //   // set svg-sprite-loader
  //   config.module.rule('svg').exclude.add(resolve('src/icons')).end()
  //   config.module
  //     .rule('icons')
  //     .test(/\.svg$/)
  //     .include.add(resolve('src/icons'))
  //     .end()
  //     .use('svg-sprite-loader')
  //     .loader('svg-sprite-loader')
  //     .options({
  //       symbolId: 'icon-[name]',
  //     })
  //     .end()

  //   // set preserveWhitespace
  //   config.module
  //     .rule('vue')
  //     .use('vue-loader')
  //     .loader('vue-loader')
  //     .tap((options) => {
  //       options.compilerOptions.preserveWhitespace = true
  //       return options
  //     })
  //     .end()

  //   config
  //     // https://webpack.js.org/configuration/devtool/#development
  //     .when(process.env.NODE_ENV === 'development', (config) =>
  //       config.devtool('cheap-source-map'),
  //     )

  //   // config.when(process.env.NODE_ENV !== 'development', (config) => {
  //   //   config
  //   //     .plugin('ScriptExtHtmlWebpackPlugin')
  //   //     .after('html')
  //   //     .use('script-ext-html-webpack-plugin', [
  //   //       {
  //   //         // `runtime` must same as runtimeChunk name. default is `runtime`
  //   //         inline: /runtime\..*\.js$/,
  //   //       },
  //   //     ])
  //   //     .end()
  //     // config.optimization.splitChunks({
  //     //   chunks: 'all',
  //     //   cacheGroups: {
  //     //     libs: {
  //     //       name: 'chunk-libs',
  //     //       test: /[\\/]node_modules[\\/]/,
  //     //       priority: 10,
  //     //       chunks: 'initial', // only package third parties that are initially dependent
  //     //     },
  //     //     elementUI: {
  //     //       name: 'chunk-vantUI', // split elementUI into a single package
  //     //       priority: 20, // the weight needs to be larger than libs and app or it will be packaged into libs or app
  //     //       test: /[\\/]node_modules[\\/]_?vant(.*)/, // in order to adapt to cnpm
  //     //     },
  //     //     commons: {
  //     //       name: 'chunk-commons',
  //     //       test: resolve('src/components'), // can customize your rules
  //     //       minChunks: 3, //  minimum common number
  //     //       priority: 5,
  //     //       reuseExistingChunk: true,
  //     //     },
  //     //   },
  //     // })
  //     // }
  //     // config.optimization.runtimeChunk('single')
  //   })
  // },
  chainWebpack: config => {
    config.resolve.alias.set("_c", resolve("src/components")); // key,value自行定义，比如.set('@@', resolve('src/components'))
  }
};
